package com.company.app.dao;

import java.util.List;

import com.company.app.entities.Product;
import com.google.code.ssm.api.BridgeMethodMapping;
import com.google.code.ssm.api.BridgeMethodMappings;

/**
 * The Interface ProductDAO.
 */
@BridgeMethodMappings(value={	
		@BridgeMethodMapping(methodName="searchEntityByFilter", erasedParamTypes = {Product.class }, targetParamTypes = { Product.class }) ,
		@BridgeMethodMapping(methodName="insertEntity", erasedParamTypes = {Product.class }, targetParamTypes = { Product.class }),
		@BridgeMethodMapping(methodName="updateEntity", erasedParamTypes = {Product.class }, targetParamTypes = { Product.class }),
		@BridgeMethodMapping(methodName="deleteEntity", erasedParamTypes = {Product.class }, targetParamTypes = { Product.class })
		})
public interface ProductDAO extends BaseInterfaceDAO<Product> {
	
	/** The Constant MEMCHACHE_NAMESPACE. */
	public static final String MEMCHACHED_NAMESPACE="com/company/app/dao/Product";
	
	/* (non-Javadoc)
	 * FIX NEEDED TO MAKE MEMCACHED WORK PROPERLY
	 * @see com.company.app.dao.BaseInterfaceDAO#searchEntities(java.util.List)
	 */
	@Override
	public List<Product> searchEntities(List<Product> filter);
	
	/* (non-Javadoc)
	 * FIX NEED IT TO MAKE MEMCACHED WORK PROPERLY
	 * @see com.company.app.dao.BaseInterfaceDAO#createEntity(java.lang.Object)
	 */
	@Override
	public Product createEntity(Product entity);

	/* (non-Javadoc)
	 * @see com.company.app.dao.BaseInterfaceDAO#updateEntity(java.lang.Object)
	 */
	@Override
	public Product updateEntity(Product entity);

	
	/* (non-Javadoc)
	 * @see com.company.app.dao.BaseInterfaceDAO#deleteEntity(java.lang.Object)
	 */
	@Override
	public Product deleteEntity(Product entity);
}
